#define _CRT_SECURE_NO_WARNINGS 1
//#include<iostream>
//#include<vector>
//using namespace std;
//vector<int> mult(vector<int> a, int b)
//{
//    vector<int> c;
//    int t = 1;
//    for (int i = 0; i < a.size(); i++)
//    {
//        t *= a[i] * b;
//        c.push_back(t % 10);
//        t /= 10;
//    }
//    while (t > 9)
//    {
//        c.push_back(t % 10);
//        t /= 10;
//    }
//    while (c.size() > 1 && c.back() == 0)
//        c.pop_back();
//    return c;
//}
//int main()
//{
//    string s1;
//    int b;
//    cin >> s1 >> b;
//    vector<int> a;
//    for (int i = s1.size() - 1; i >= 0; i--)
//    {
//        a.push_back(s1[i]-'0');
//    }
//    vector<int>c = mult(a, b);
//    for (int i = s1.size() - 1; i >= 0; i--)
//        cout << c[i];
//    return 0;
//}
#include<iostream>
#include<vector>
#include<algorithm>
//using namespace std;
//vector<int> div(vector<int>& a, int b, int& r)
//{
//    vector<int> c;
//    r = 0;
//    for (int i = a.size() - 1; i >= 0; i--)
//    {
//        r = r * 10 + a[i];
//        c.push_back(r / b);
//        r %= b;
//    }
//    reverse(c.begin(), c.end());
//    while (c.size() > 1 && c.back() == 0)
//        c.pop_back();
//    return c;
//}
//int main()
//{
//    string s;
//    int b;
//    cin >> s >> b;
//    vector<int> a;
//    int r;
//    for (int i = s.size() - 1; i >= 0; i--)
//        a.push_back(s[i]-'0');
//    vector<int> c = div(a, b, r);
//    for (int i = c.size() - 1; i >= 0; i--)
//        cout << c[i];
//    cout << endl << r;
//    return 0;
//}
//#include<iostream>
//using namespace std;
//const int N = 1e5 + 10;
//int m, n, l, r;
//int q[N], s[N];
//int main()
//{
//    scanf("%d%d", &n, &m);
//    for (int i = 1; i <= n; i++)
//        scanf("%d", &q[i]);
//    s[0] = 0;
//    for (int i = 1; i <= n; i++)
//        s[i] = q[n] + s[i - 1];
//    while (n--)
//    {
//        scanf("%d%d", &l, &r);
//        printf("%d\n", s[r] - s[l - 1]);
//    }
//    return 0;
//}
#include<iostream>
using namespace std;
int n, m, k;
const int N = 1010;
int q[N][N];
int main()
{
    scanf("%d%d%d", &n, &m, &k);
    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= m; j++)
            scanf("%d", &q[i][j]);
    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= m; j++)
            q[i][j] += q[i][j - 1] + q[i - 1][j] - q[i - 1][j - 1];
    while (k--)
    {
        int x1, y1, x2, y2;
        scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
        printf("%d", q[x2][y2] + q[x1 - 1][y1 - 1] - q[x2][y1 - 1] - q[x1 - 1][y2]);
    }
    return 0;
}